{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from dl_util import *\n",
    "from ml_util import *\n",
    "\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from eval_class_util import *\n",
    "from run_eval import split_fit_plot_predict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "freesolv_sequences = loadNumpy('freesolv_sequences')\n",
    "freesolv_vocab_size, max_len_freesolv = 32, 83\n",
    "freesolv_maccs = loadNumpy('freesolv_maccs')\n",
    "freesolv_solvation_exp = loadNumpy(\"freesolv_solvation_exp\")\n",
    "freesolv_solvation_calc = loadNumpy(\"freesolv_solvation_calc\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "freesolv_exp_standardized = standardize_1d(freesolv_solvation_exp)\n",
    "freesolv_calc_standardized = standardize_1d(freesolv_solvation_calc)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "643"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(freesolv_sequences)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# saveNumpy(freesolv_calc_standardized, \"freesolv_standardized_calc\")\n",
    "# saveNumpy(freesolv_exp_standardized, \"freesolv_standardized_exp\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cnn_model\n",
      "WARNING:tensorflow:From /usr/local/lib/python2.7/dist-packages/tensorflow/python/util/deprecation.py:497: calling conv1d (from tensorflow.python.ops.nn_ops) with data_format=NHWC is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "`NHWC` for data_format is deprecated, use `NWC` instead\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "embedding_1 (Embedding)      (None, 83, 32)            1024      \n",
      "_________________________________________________________________\n",
      "conv1d_1 (Conv1D)            (None, 83, 32)            3104      \n",
      "_________________________________________________________________\n",
      "max_pooling1d_1 (MaxPooling1 (None, 41, 32)            0         \n",
      "_________________________________________________________________\n",
      "conv1d_2 (Conv1D)            (None, 41, 32)            3104      \n",
      "_________________________________________________________________\n",
      "max_pooling1d_2 (MaxPooling1 (None, 20, 32)            0         \n",
      "_________________________________________________________________\n",
      "flatten_1 (Flatten)          (None, 640)               0         \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 1)                 641       \n",
      "=================================================================\n",
      "Total params: 7,873\n",
      "Trainable params: 7,873\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "Train on 433 samples, validate on 49 samples\n",
      "Epoch 1/10\n",
      "433/433 [==============================] - 2s 4ms/step - loss: 0.1380 - mean_absolute_percentage_error: 41.7668 - val_loss: 0.0322 - val_mean_absolute_percentage_error: 145133.3224\n",
      "Epoch 2/10\n",
      "433/433 [==============================] - 0s 849us/step - loss: 0.0203 - mean_absolute_percentage_error: 20.3067 - val_loss: 0.0266 - val_mean_absolute_percentage_error: 127322.9276\n",
      "Epoch 3/10\n",
      "433/433 [==============================] - 0s 915us/step - loss: 0.0156 - mean_absolute_percentage_error: 17.6512 - val_loss: 0.0198 - val_mean_absolute_percentage_error: 105292.1039\n",
      "Epoch 4/10\n",
      "433/433 [==============================] - 0s 890us/step - loss: 0.0121 - mean_absolute_percentage_error: 15.0751 - val_loss: 0.0148 - val_mean_absolute_percentage_error: 82676.4112\n",
      "Epoch 5/10\n",
      "433/433 [==============================] - 0s 881us/step - loss: 0.0094 - mean_absolute_percentage_error: 12.7317 - val_loss: 0.0108 - val_mean_absolute_percentage_error: 65708.7155\n",
      "Epoch 6/10\n",
      "433/433 [==============================] - 0s 886us/step - loss: 0.0068 - mean_absolute_percentage_error: 10.4202 - val_loss: 0.0075 - val_mean_absolute_percentage_error: 43021.4728\n",
      "Epoch 7/10\n",
      "433/433 [==============================] - 0s 872us/step - loss: 0.0055 - mean_absolute_percentage_error: 9.1976 - val_loss: 0.0055 - val_mean_absolute_percentage_error: 32075.2219\n",
      "Epoch 8/10\n",
      "433/433 [==============================] - 0s 838us/step - loss: 0.0041 - mean_absolute_percentage_error: 7.9042 - val_loss: 0.0048 - val_mean_absolute_percentage_error: 25603.8902\n",
      "Epoch 9/10\n",
      "433/433 [==============================] - 0s 897us/step - loss: 0.0033 - mean_absolute_percentage_error: 7.0407 - val_loss: 0.0037 - val_mean_absolute_percentage_error: 12218.6674\n",
      "Epoch 10/10\n",
      "433/433 [==============================] - 0s 900us/step - loss: 0.0035 - mean_absolute_percentage_error: 6.9667 - val_loss: 0.0051 - val_mean_absolute_percentage_error: 15116.6099\n",
      "161/161 [==============================] - 0s 130us/step\n",
      "('Test mape%:', 8.16)\n",
      "('History saved successfully', 'history_freesolv_exp_cnn_model_dropout_0_epochs_10_batch_8_lr_0.001.pkl')\n",
      "Stats saved in model/stats_freesolv_exp_cnn_model_dropout_0_epochs_10_batch_8_lr_0.001\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(array([0.44320446, 0.5320845 , 0.8569151 , 0.5803109 , 0.60103625,\n",
       "        0.746114  , 0.8529295 , 0.77839774, 0.74292547, 0.8748505 ,\n",
       "        0.6050219 , 0.8146672 , 0.8238342 , 0.38062972, 0.93463534,\n",
       "        0.69151056, 0.86329216, 0.75049824, 0.20884815, 0.5775209 ,\n",
       "        0.52929455, 0.7417298 , 0.53726584, 0.72698283, 0.8409725 ,\n",
       "        0.6779593 , 0.89996016, 0.9509765 , 0.74571544, 0.81506574,\n",
       "        0.5328816 , 0.8529295 , 0.7568753 , 0.9772818 , 0.7931447 ,\n",
       "        0.8397768 , 0.78995615, 0.7413312 , 0.81666005, 0.85651654,\n",
       "        0.7349542 , 0.7070546 , 0.54404145, 0.31367078, 0.7289757 ,\n",
       "        0.6907134 , 0.98684734, 0.46711838, 0.7357513 , 0.6046234 ,\n",
       "        0.4814667 , 0.7102431 , 0.8876046 , 0.2642487 , 0.91351134,\n",
       "        0.7445197 , 0.7393384 , 0.6954962 , 0.76524514, 0.8605022 ,\n",
       "        0.76524514, 0.8481467 , 0.39617378, 0.7178159 , 0.709446  ,\n",
       "        0.5874851 , 0.98804307, 0.73614985, 0.64487845, 0.69430053,\n",
       "        0.7668394 , 0.66201675, 0.88282186, 0.55878836, 0.8848147 ,\n",
       "        0.69629335, 0.6373057 , 0.8433639 , 0.76723796, 0.8505381 ,\n",
       "        0.7437226 , 0.9206855 , 0.6464727 , 0.76006377, 0.84695095,\n",
       "        0.9047429 , 0.78796333, 0.734157  , 0.85850936, 0.828617  ,\n",
       "        0.65284973, 0.73296136, 0.91749704, 0.8098844 , 0.7218015 ,\n",
       "        0.7596652 , 0.8597051 , 0.7146273 , 0.7620566 , 0.85651654,\n",
       "        0.84854525, 0.69669193, 0.78437626, 0.7560781 , 0.68911916,\n",
       "        0.64567554, 0.8521323 , 0.65284973, 0.7122359 , 0.3033081 ,\n",
       "        0.9900359 , 0.9438023 , 0.87923473, 0.9210841 , 0.61379033,\n",
       "        0.7301714 , 0.30490234, 0.7803906 , 0.63571143, 0.966122  ,\n",
       "        0.8182543 , 0.7544839 , 0.9601435 , 0.5528099 , 0.72698283,\n",
       "        0.33240336, 0.73375845, 0.7122359 , 0.90035874, 0.96652055,\n",
       "        0.94539654, 0.72578716, 0.7154245 , 0.83220404, 0.8294141 ,\n",
       "        0.42367476, 0.44998008, 0.22797927, 0.6958948 , 0.93463534,\n",
       "        0.76803505, 0.5161419 , 0.91351134, 0.96652055, 0.7939418 ,\n",
       "        0.77520925, 0.6337186 , 0.66679955, 0.3144679 , 0.74770826,\n",
       "        0.7568753 , 0.7365484 , 0.7493025 , 0.73854125, 0.84615386,\n",
       "        0.5296931 , 0.8357912 , 0.7130331 , 0.45237145, 0.7349542 ,\n",
       "        0.74093264], dtype=float32),\n",
       " array([0.5198608 , 0.44148302, 0.72273993, 0.5228383 , 0.57113314,\n",
       "        0.6662566 , 0.8583158 , 0.73852706, 0.6662466 , 0.8618112 ,\n",
       "        0.5499622 , 0.7772592 , 0.6905356 , 0.29546672, 0.9069881 ,\n",
       "        0.6887048 , 0.77216464, 0.7552746 , 0.1994569 , 0.6476541 ,\n",
       "        0.6084863 , 0.7389563 , 0.6135633 , 0.6361822 , 0.7674964 ,\n",
       "        0.60878134, 0.8652003 , 0.82956517, 0.7837691 , 0.75602007,\n",
       "        0.5195172 , 0.7561434 , 0.7708833 , 0.8599656 , 0.7090585 ,\n",
       "        0.7578833 , 0.7595565 , 0.61043453, 0.80123425, 0.79602426,\n",
       "        0.6663952 , 0.6966689 , 0.5506436 , 0.3115366 , 0.7061613 ,\n",
       "        0.70830464, 0.8647524 , 0.45127028, 0.67203784, 0.49056026,\n",
       "        0.50083643, 0.69297713, 0.90135455, 0.1940471 , 0.846186  ,\n",
       "        0.7369084 , 0.68248576, 0.69459003, 0.7866396 , 0.8429447 ,\n",
       "        0.6735013 , 0.74891424, 0.43522653, 0.6614852 , 0.7038488 ,\n",
       "        0.5644149 , 0.887296  , 0.78602713, 0.6479805 , 0.6848004 ,\n",
       "        0.7129642 , 0.6502893 , 0.85261106, 0.55019563, 0.8231358 ,\n",
       "        0.6959149 , 0.6006838 , 0.7814214 , 0.685423  , 0.85991377,\n",
       "        0.7554969 , 0.81564796, 0.6119157 , 0.8039731 , 0.7596265 ,\n",
       "        0.858145  , 0.77136445, 0.5956337 , 0.7533956 , 0.69597054,\n",
       "        0.41050878, 0.631789  , 0.83656126, 0.8006773 , 0.6556339 ,\n",
       "        0.77324903, 0.77440023, 0.6358593 , 0.7874433 , 0.8563662 ,\n",
       "        0.75459313, 0.6808868 , 0.7870124 , 0.7301832 , 0.6196342 ,\n",
       "        0.55807936, 0.8721127 , 0.6028642 , 0.70060724, 0.292977  ,\n",
       "        0.77590805, 0.80619985, 0.8404539 , 0.8518934 , 0.58063024,\n",
       "        0.6848647 , 0.19353414, 0.70224905, 0.62806463, 0.7787094 ,\n",
       "        0.72481793, 0.7669321 , 0.83967257, 0.5933216 , 0.7421773 ,\n",
       "        0.48808745, 0.620351  , 0.6896144 , 0.85305285, 0.79707927,\n",
       "        0.86787605, 0.64194745, 0.7527709 , 0.79555404, 0.72333324,\n",
       "        0.4628378 , 0.45731926, 0.27706406, 0.7017341 , 0.70926964,\n",
       "        0.7394929 , 0.51019514, 0.83550143, 0.86276346, 0.7762466 ,\n",
       "        0.7065953 , 0.5821572 , 0.6528781 , 0.37956154, 0.80156404,\n",
       "        0.6681233 , 0.69370556, 0.7600697 , 0.77613634, 0.88609606,\n",
       "        0.50133705, 0.7492389 , 0.6692389 , 0.45312983, 0.59052855,\n",
       "        0.6948246 ], dtype=float32))"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEKCAYAAAAIO8L1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl8VfWd//HXJxuBLEASQGUNirILmBGtRUVsa2tFaSkVsVXrlPk5bV1qW61TR1vrjJ1prVvH0bYurQta12prbWvBpe2gbCKLCkVQZE3YkrCEwOf3xzkJN3iTHJLcnEvyfj4e93HPOfec8/3kovnku5zv19wdERGRg2XEHYCIiKQnJQgREUlKCUJERJJSghARkaSUIEREJCklCBERSSplCcLM7jOzTWa2JOFYkZn9ycxWhO89w+NmZneY2UozW2xm41IVl4iIRJPKGsQDwFkHHbsWeMndhwAvhfsAnwaGhK+ZwN0pjEtERCJIWYJw91eALQcdPhd4MNx+EDgv4fivPPB/QA8zOzJVsYmISPOy2rm8Pu6+PtzeAPQJt/sCHySctzY8tp6DmNlMgloGeXl5JwwdOjR10YqIdEDz588vd/dezZ3X3gminru7mR3yPB/ufi9wL0BZWZnPmzevzWMTEenIzGxNlPPaexTTxrqmo/B9U3j8Q6B/wnn9wmMiIhKT9k4QvwUuCrcvAp5NOP7lcDTTScD2hKYoERGJQcqamMzsUeB0oMTM1gI3ALcAj5vZpcAaYFp4+u+BzwArgZ3AJamKS0REoklZgnD36Y18NCnJuQ58LVWxiMih27t3L2vXrmX37t1xhyItlJubS79+/cjOzm7R9bF1UotIelu7di0FBQUMGjQIM4s7HDlE7k5FRQVr166ltLS0RffQVBsiktTu3bspLi5WcjhMmRnFxcWtqgEqQYhIo5QcDm+t/fdTghARkaSUIEQkLVVUVDBmzBjGjBnDEUccQd++fev3a2pqIt3jkksu4Z133olc5i9+8Qt69epVX86YMWMO6fqORp3UIpKWiouLWbRoEQA33ngj+fn5fOtb32pwjrvj7mRkJP9b9/777z/kcmfMmMFtt93W6Oe1tbVkZR341dlcDIn27dtHZmbmIccUF9UgROSwsnLlSoYPH86MGTMYMWIE69evZ+bMmZSVlTFixAh+8IMf1J/78Y9/nEWLFlFbW0uPHj249tprOf744zn55JPZtGlTE6U09Oc//5nTTz+dz372s4waNSppDA899BCjRo1i5MiRXHfddQD15V555ZWMHj2a119/vc2/j1RSDUJEmvX955aybN2ONr3n8KMKueGcES269u233+ZXv/oVZWVlANxyyy0UFRVRW1vLxIkTmTp1KsOHD29wzfbt2znttNO45ZZb+OY3v8l9993Htdde+5F7P/zww8yZM6d+v+6X+rx581i2bBkDBgxg5cqVDWJYu3Yt3/ve95g3bx7du3fnzDPP5Pnnn+ess85i+/btnHrqqU3WStKVahAictg5+uij65MDwKOPPsq4ceMYN24cy5cvZ9myZR+5pmvXrnz6058G4IQTTmD16tVJ7z1jxgwWLVpU/8rJyQHg5JNPZsCAAUljmDt3LmeccQYlJSVkZ2dzwQUX8MorrwCQk5PDlClT2uTnbm+qQYhIs1r6l36q5OXl1W+vWLGC22+/nddff50ePXpw4YUXJh37X/eLHiAzM5Pa2toWl5lsvzFdu3Y9bIcLqwYhIoe1HTt2UFBQQGFhIevXr+fFF19s9xjGjx/P7NmzqaiooLa2llmzZnHaaae1exxtTTUIETmsjRs3juHDhzN06FAGDhzIKaec0qr7HdwHcc899zR7Tb9+/bjppps4/fTTcXfOOecczj777EOupaQbC+bJOzxpwSCR1Fm+fDnDhg2LOwxppWT/jmY2393LGrmknpqYREQkKSUIERFJSglCRESSUoIQEZGkIicIMzvGzB4ysyfN7ORUBiUiIvFrdJirmeW6e+LTJjcB3wm3nwPGpDIwERGJV1M1iOfM7MsJ+3uBQcBAYF8qgxIRmThx4kceervtttu47LLLmrwuPz8fgHXr1jF16tSk55x++uk0N0T+tttuY+fOnfX7n/nMZ9i2bVuU0Jt04403Npi6fMyYMW1y31RoKkGcBRSa2R/M7FTgW8CngCnAjPYITkQ6r+nTpzNr1qwGx2bNmsX06dMjXX/UUUfxxBNPtLj8gxPE73//e3r06NHi+yW66qqrGsz3dPB9D37ALuoDd+7O/v372yRGaCJBuPs+d78L+CIwGbgduN/dr3b3t9ssAhGRJKZOncrvfve7+sWBVq9ezbp165gwYQJVVVVMmjSJcePGMWrUKJ599tmPXL969WpG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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "split_fit_plot_predict(cnn_model,  freesolv_sequences, freesolv_maccs, freesolv_calc_standardized, freesolv_vocab_size, max_len_freesolv, \"freesolv_exp\",\\\n",
    "                      batch_size=8, epochs=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cnn_model\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "embedding_8 (Embedding)      (None, 83, 32)            1024      \n",
      "_________________________________________________________________\n",
      "conv1d_9 (Conv1D)            (None, 83, 32)            3104      \n",
      "_________________________________________________________________\n",
      "max_pooling1d_9 (MaxPooling1 (None, 41, 32)            0         \n",
      "_________________________________________________________________\n",
      "conv1d_10 (Conv1D)           (None, 41, 32)            3104      \n",
      "_________________________________________________________________\n",
      "max_pooling1d_10 (MaxPooling (None, 20, 32)            0         \n",
      "_________________________________________________________________\n",
      "flatten_5 (Flatten)          (None, 640)               0         \n",
      "_________________________________________________________________\n",
      "dense_12 (Dense)             (None, 1)                 641       \n",
      "=================================================================\n",
      "Total params: 7,873\n",
      "Trainable params: 7,873\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "Train on 433 samples, validate on 49 samples\n",
      "Epoch 1/40\n",
      "433/433 [==============================] - 1s 3ms/step - loss: 0.1833 - mean_absolute_percentage_error: 1774424.9578 - val_loss: 0.0241 - val_mean_absolute_percentage_error: 36.2616\n",
      "Epoch 2/40\n",
      "433/433 [==============================] - 0s 972us/step - loss: 0.0140 - mean_absolute_percentage_error: 1318703.1295 - val_loss: 0.0165 - val_mean_absolute_percentage_error: 29.0402\n",
      "Epoch 3/40\n",
      "433/433 [==============================] - 0s 984us/step - loss: 0.0123 - mean_absolute_percentage_error: 1010586.1155 - val_loss: 0.0162 - val_mean_absolute_percentage_error: 29.2529\n",
      "Epoch 4/40\n",
      "433/433 [==============================] - 0s 927us/step - loss: 0.0087 - mean_absolute_percentage_error: 991174.5046 - val_loss: 0.0128 - val_mean_absolute_percentage_error: 25.3962\n",
      "Epoch 5/40\n",
      "433/433 [==============================] - 0s 937us/step - loss: 0.0075 - mean_absolute_percentage_error: 839360.7056 - val_loss: 0.0105 - val_mean_absolute_percentage_error: 22.7887\n",
      "Epoch 6/40\n",
      "433/433 [==============================] - 0s 959us/step - loss: 0.0065 - mean_absolute_percentage_error: 639054.6057 - val_loss: 0.0091 - val_mean_absolute_percentage_error: 20.0036\n",
      "Epoch 7/40\n",
      "433/433 [==============================] - 0s 989us/step - loss: 0.0059 - mean_absolute_percentage_error: 457965.2697 - val_loss: 0.0073 - val_mean_absolute_percentage_error: 16.9000\n",
      "Epoch 8/40\n",
      "433/433 [==============================] - 0s 965us/step - loss: 0.0057 - mean_absolute_percentage_error: 368850.4443 - val_loss: 0.0096 - val_mean_absolute_percentage_error: 20.1768\n",
      "Epoch 9/40\n",
      "433/433 [==============================] - 0s 949us/step - loss: 0.0044 - mean_absolute_percentage_error: 369116.4623 - val_loss: 0.0058 - val_mean_absolute_percentage_error: 14.3943\n",
      "Epoch 10/40\n",
      "433/433 [==============================] - 0s 982us/step - loss: 0.0042 - mean_absolute_percentage_error: 300353.5432 - val_loss: 0.0052 - val_mean_absolute_percentage_error: 12.6448\n",
      "Epoch 11/40\n",
      "433/433 [==============================] - 0s 964us/step - loss: 0.0039 - mean_absolute_percentage_error: 120805.7797 - val_loss: 0.0047 - val_mean_absolute_percentage_error: 12.1510\n",
      "Epoch 12/40\n",
      "433/433 [==============================] - 0s 949us/step - loss: 0.0036 - mean_absolute_percentage_error: 240193.4704 - val_loss: 0.0054 - val_mean_absolute_percentage_error: 12.8418\n",
      "Epoch 13/40\n",
      "433/433 [==============================] - 0s 965us/step - loss: 0.0031 - mean_absolute_percentage_error: 140888.9575 - val_loss: 0.0049 - val_mean_absolute_percentage_error: 12.0565\n",
      "Epoch 14/40\n",
      "433/433 [==============================] - 0s 974us/step - loss: 0.0030 - mean_absolute_percentage_error: 202879.0275 - val_loss: 0.0069 - val_mean_absolute_percentage_error: 15.3813\n",
      "Epoch 15/40\n",
      "433/433 [==============================] - 0s 962us/step - loss: 0.0026 - mean_absolute_percentage_error: 21722.0607 - val_loss: 0.0039 - val_mean_absolute_percentage_error: 10.3899\n",
      "Epoch 16/40\n",
      "433/433 [==============================] - 0s 977us/step - loss: 0.0021 - mean_absolute_percentage_error: 8780.6640 - val_loss: 0.0035 - val_mean_absolute_percentage_error: 10.3137\n",
      "Epoch 17/40\n",
      "433/433 [==============================] - 0s 946us/step - loss: 0.0021 - mean_absolute_percentage_error: 170049.5444 - val_loss: 0.0035 - val_mean_absolute_percentage_error: 9.7234\n",
      "Epoch 18/40\n",
      "433/433 [==============================] - 0s 971us/step - loss: 0.0017 - mean_absolute_percentage_error: 32248.6682 - val_loss: 0.0034 - val_mean_absolute_percentage_error: 11.0554\n",
      "Epoch 19/40\n",
      "433/433 [==============================] - 0s 930us/step - loss: 0.0016 - mean_absolute_percentage_error: 60845.6513 - val_loss: 0.0035 - val_mean_absolute_percentage_error: 9.2243\n",
      "Epoch 20/40\n",
      "433/433 [==============================] - 0s 964us/step - loss: 0.0015 - mean_absolute_percentage_error: 23639.8040 - val_loss: 0.0032 - val_mean_absolute_percentage_error: 10.7761\n",
      "Epoch 21/40\n",
      "433/433 [==============================] - 0s 962us/step - loss: 0.0013 - mean_absolute_percentage_error: 17042.3000 - val_loss: 0.0034 - val_mean_absolute_percentage_error: 10.4917\n",
      "Epoch 22/40\n",
      "433/433 [==============================] - 0s 958us/step - loss: 0.0017 - mean_absolute_percentage_error: 171004.0949 - val_loss: 0.0030 - val_mean_absolute_percentage_error: 9.0497\n",
      "Epoch 23/40\n",
      "433/433 [==============================] - 0s 925us/step - loss: 0.0011 - mean_absolute_percentage_error: 33609.4322 - val_loss: 0.0034 - val_mean_absolute_percentage_error: 8.8399\n",
      "Epoch 24/40\n",
      "433/433 [==============================] - 0s 958us/step - loss: 0.0016 - mean_absolute_percentage_error: 72135.6045 - val_loss: 0.0031 - val_mean_absolute_percentage_error: 9.8817\n",
      "Epoch 25/40\n",
      "433/433 [==============================] - 0s 957us/step - loss: 9.7730e-04 - mean_absolute_percentage_error: 67557.3069 - val_loss: 0.0029 - val_mean_absolute_percentage_error: 9.2989\n",
      "Epoch 26/40\n",
      "433/433 [==============================] - 0s 970us/step - loss: 8.7535e-04 - mean_absolute_percentage_error: 18185.3036 - val_loss: 0.0035 - val_mean_absolute_percentage_error: 10.9801\n",
      "Epoch 27/40\n",
      "433/433 [==============================] - 0s 913us/step - loss: 9.0558e-04 - mean_absolute_percentage_error: 23622.2079 - val_loss: 0.0035 - val_mean_absolute_percentage_error: 10.0025\n",
      "Epoch 28/40\n",
      "433/433 [==============================] - 0s 963us/step - loss: 8.5969e-04 - mean_absolute_percentage_error: 59333.2385 - val_loss: 0.0031 - val_mean_absolute_percentage_error: 11.2716\n",
      "Epoch 29/40\n",
      "433/433 [==============================] - 0s 947us/step - loss: 6.0085e-04 - mean_absolute_percentage_error: 22142.2754 - val_loss: 0.0028 - val_mean_absolute_percentage_error: 9.3270\n",
      "Epoch 30/40\n",
      "433/433 [==============================] - 0s 993us/step - loss: 6.0462e-04 - mean_absolute_percentage_error: 3062.0910 - val_loss: 0.0032 - val_mean_absolute_percentage_error: 10.5197\n",
      "Epoch 31/40\n",
      "433/433 [==============================] - 0s 956us/step - loss: 5.4354e-04 - mean_absolute_percentage_error: 9462.8014 - val_loss: 0.0033 - val_mean_absolute_percentage_error: 10.8387\n",
      "Epoch 32/40\n",
      "433/433 [==============================] - 0s 985us/step - loss: 4.7084e-04 - mean_absolute_percentage_error: 62276.3556 - val_loss: 0.0032 - val_mean_absolute_percentage_error: 9.6688\n",
      "Epoch 33/40\n",
      "433/433 [==============================] - 0s 973us/step - loss: 5.5428e-04 - mean_absolute_percentage_error: 8764.9038 - val_loss: 0.0032 - val_mean_absolute_percentage_error: 9.0313\n",
      "Epoch 34/40\n",
      "433/433 [==============================] - 0s 918us/step - loss: 5.8256e-04 - mean_absolute_percentage_error: 57005.5869 - val_loss: 0.0033 - val_mean_absolute_percentage_error: 9.1114\n",
      "161/161 [==============================] - 0s 109us/step\n",
      "('Test mape%:', 6.8968143788924126)\n",
      "('History saved successfully', 'history_freesolv_exp_cnn_model_dropout_0_epochs_40_batch_8_lr_0.001.pkl')\n",
      "Stats saved in model/stats_freesolv_exp_cnn_model_dropout_0_epochs_40_batch_8_lr_0.001\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "split_fit_plot_predict(cnn_model,  freesolv_sequences, freesolv_maccs, freesolv_exp_standardized, freesolv_vocab_size, max_len_freesolv, \"freesolv_exp\",\\\n",
    "                      batch_size=8, epochs=40)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
